package runtime;

class Cat{
	// 静态块(类)是程序开始之前只运行一次的代码块，优先于main方法
	static {
		System.out.println("static 块 1");
	}
	static {
		System.out.println("static 块 2");
	}
	
	// 非静态块(对象)，每创建一个对象就会调用所有非静态块,先于构造方法
	{
		System.out.println("non static 块 1");
	}
	
	{
		System.out.println("non static 块 2");
	}
	
	public Cat() {
		// 初始化对象的属性
		System.out.println("new cat...");
	}
	
	public static void main(String[] args) {
		System.out.println("main");
		Cat c = new Cat();
		Cat c2 = new Cat();
		Cat c3 = new Cat();
		Cat c4 = new Cat();
		
	}
}
